#ifndef LISTAQ_H
#define LISTAQ_H

#include "nodoq.h"
#include <QString>

template <typename T>
class ListaQ
{
    public:
        ListaQ();

        ListaQ<T> operator= (ListaQ<T> copy);

        bool Vacia();
        int Largo();

        void InsertarInicio(int v, T c);
        void InsertarFinal(int v, T c);
        void InsertarPos(int v, T c, int pos);

        void EliminarInicio();
        void EliminarFinal();
        void EliminarPos(int  pos);

        void EliminarID(int clave);

        bool Valido(int v);
        bool Valido(T c);

        NodoQ<T>* Buscar(int v);
        NodoQ<T>* Buscar(T c);

        NodoQ<T>* operator[] (int pos);

        T Index(int c);

        QString ToQString();

    private:
        NodoQ<T>* Primero;
};
#endif // LISTAQ_H
